In recent years, Web 2.0 technology has matured into a powerful means for creating user friendly, feature rich, interactive user interface clients, which are separated from server storage. This technology, referred to as Asynchronous JavaScript and XML (AJAX), runs natively on every modern web browser and has a wide application area, ranging from web based e-mail clients to web stores and database viewer applications. The separation between data storage, server behaviour and client user interfaces (without the need for plug-ins) offers advantages such as re-use of common technology, portability and interoperability, which make it a compelling alternative to hard coded user interfaces (UI).
Set Top Boxes (STBs) allow audio and video content to be viewed in the home. Typically, an STB will receive available audio and video content for viewing either through broadcasts that are transmitted over antenna, cable, or satellite based transmission systems, or increasingly, via an internet connection or other cable connection from a provider who makes content available on an on-demand, streamed or downloaded basis. In addition to the necessary means for receiving and decoding audio and video content, STBs have at least an internal processor on which software code embodying an operating system runs, a memory in which audio and video content and control data can be stored, and the hardware and software to support a network connection, such as the internet (in this respect, STBs can be thought of as computerised systems, functionally equivalent to general purpose computers, but distinguishable by virtue of their dedicated purpose and the associated hardware and software that is provided by the manufacturer to support that purpose).
Under the command of the control software operating on the STB processor, audio and video content is manipulated and transmitting to an STB output for display on screen. Like general purposes computers, an STB will therefore typically provide a suitable User Interface (UI), either encoded as control data or as part of the operating system, for displaying options on the screen connected to the STB output. User interfaces are presented to allow the user to select content for viewing and/or recording, and to access other functionality such as an Electronic Program Guide, or services provided over an Internet connection. Separate user interfaces may also be provided to STB engineers who wish to carry out maintenance on the STB, or debug software during trial operations.
It costs considerable time and effort to develop and maintain user interfaces, as to do so it is necessary to employ software engineers who understand the proprietary code installed on the STBs and provide an interface that meets the ever expanding requirements of STB developers. With different STBs designs on the market, running essentially different operating system code, this problem is increasingly complex. The user interface can only be changed in compile time, and has considerable dependency on other parts of the code. This makes it difficult if not impossible to dynamically replace the UI with an alternative UI, where an STB developer wishes to use a new design, and also prevents reuse of UI across different STB platforms. The embedded nature of the UI code, also means that any adjustments that are required to meet new customer expectations or to update the UI to meet new STB developer requirements are difficult and costly. It is not yet possible for the customer or for third parties to make adjustments to the UI themselves, even though the customer's wishes regarding STB features and its graphical user interface may change over time within the software life cycle (before a new UI is downloaded and installed).
Furthermore, when an STB does not function as expected, either due to a software fault, or due to a misunderstanding of the STB operation, a customer will typically call customer support. In any ensuing call with a service engineer, basic command and control settings may be downloaded to a STB via any of the transmission means noted above However, traditional means of support do not allow an engineer or a customer help desk operator to remotely customize the settings of the STB and to remotely determine the cause of any technical issues and resolve a customer's concerns quickly.
We have therefore appreciated that it would be desirable to provide a distributed system architecture that allows the display and control functionality of the STB to be tailored flexibly, allowing customer expectations to be met, allowing engineers to make more dynamic and responsive changes to the available functionality and look of the STB experience, without needing to wait for the end of the current software lifetime and the installation of the next large-scale software product.
We have also appreciated that it would be desirable to provide for increased control of the STB over the Internet, to allow for better maintenance, diagnostic and upgrade operation to be carried out.